package event.controller.security
{
	import event.controller.EventController;
	import services.SecurityService;
	
	import mx.rpc.CallResponder;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	
	import valueObjects.AreaUsuarioVO;
	import valueObjects.PerfilUsuarioVO;
	import valueObjects.UsuarioVO;
	
	public class UsuarioController extends EventController
	{
		public var securityService:SecurityService = new SecurityService;
		
		[Bindable]
		public var removeUsuarioResult:CallResponder = new CallResponder;
		
		[Bindable]
		public var findUsuarioByFilterResult:CallResponder = new CallResponder;
		
		[Bindable]
		public var findPerfilUsuarioByFilterResult:CallResponder = new CallResponder;
		
		[Bindable]
		public var findAreaUsuarioByFilterResult:CallResponder = new CallResponder;
		
		public function UsuarioController()
		{
			securityService.addEventListener(FaultEvent.FAULT, handleFault);
			securityService.showBusyCursor = true;
			
			removeUsuarioResult.addEventListener(FaultEvent.FAULT, handleFault);
			
			findUsuarioByFilterResult.addEventListener(FaultEvent.FAULT, handleFault);
		}
		
		public function removeUsuario(usuario:UsuarioVO):void
		{
			removeUsuarioResult.token = securityService.removeUsuario(usuario);
		}
		
		public function findUsuarioByFilter(usuarioFilter:UsuarioVO):void
		{
			findUsuarioByFilterResult.token = securityService.findUsuarioByFilter(usuarioFilter);
		}
		
		public function findPerfilUsuarioByFilter(perfilUsuarioFilter:PerfilUsuarioVO):void
		{
			findPerfilUsuarioByFilterResult.token = securityService.findPerfilUsuarioByFilter(perfilUsuarioFilter);
		}
		
		public function findAreaUsuarioByFilter(areaUsuarioFilter:AreaUsuarioVO):void
		{
			findAreaUsuarioByFilterResult.token = securityService.findAreaUsuarioByFilter(areaUsuarioFilter);
		}
		
		
	}
}